// Copyright (C) 2010 Félix Cloutier.

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 2.0.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License 2.0 for more details.

// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/

#include "JitRecompiler.h"

#define INST(name) \
	void JitRecompiler::name(UGeckoInstruction inst, JitFunctionContext& functionContext)

// These would be a great place to use the vector instructions of LLVM.

namespace LLVMJit
{

INST(psq_l)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_lu)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_st)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_stu)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_lx)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_stx)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_lux)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(psq_stux)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_div)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_sub)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_add)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_sel)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_res)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_mul)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_rsqrte)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_msub)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_madd)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_nmsub)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_nmadd)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_neg)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_mr)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_nabs)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_abs)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_sum0)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_sum1)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_muls0)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_muls1)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_madds0)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_madds1)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_cmpu0)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_cmpo0)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_cmpu1)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_cmpo1)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_merge00)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_merge01)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_merge10)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(ps_merge11)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

INST(dcbz_l)
{
#ifndef _MSC_VER
#warning	Implement me!
#endif
	Default(inst, functionContext);
}

}